﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Gustozzi.DAL;
using System.Text;

namespace WebGustozzi.ModuloVentas
{
    ///<summary>
    ///Nombre	    : wfBuscarPedido
    ///Descripción	: 
    ///               
    ///</summary>
    ///<remarks>
    ///Fecha        Moficado Por        Descripción
    ///07/02/2012               	    Versión inicial
    ///19/02/2012   Marco Pizarro	    Agregar validaciones iniciales
    ///</remarks>
    public partial class wfBuscarPedido : System.Web.UI.Page
    {

        VentasDataEntities contexto = null;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                hdf_InicioGrilla.Value = "S";
                Inicializa();
            }
            else
            {
                hdf_InicioGrilla.Value = "N";
            }  
        }

        public void Inicializa() {
            txtFecIni.Attributes.Add("onblur", String.Format("FechaValida('{0}','{1}','{2}')", txtFecIni.ClientID, "Consultar Pedido", "Ingrese una Fecha de Inicio válido"));
            txtFecFin.Attributes.Add("onblur", String.Format("FechaValida('{0}','{1}','{2}')", txtFecFin.ClientID, "Consultar Pedido", "Ingrese una Fecha de Fin válido"));
            btnBuscar.Attributes.Add("onClick", "return ValidarFechas()");
        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                BuscarPedidos();
            }
            catch (Exception ex)
            {
                lblMsj.Text = ex.Message;
                lblMsj.ForeColor = System.Drawing.Color.Red;
                divMensaje.Visible = true;
            }
        }

        public void BuscarPedidos() 
        {
            DateTime? fechaInicio=null;
            DateTime? fechaFin = null ;

            if (txtFecIni.Text.Trim() != string.Empty) 
            {
                fechaInicio=Convert.ToDateTime (txtFecIni.Text);
            }

            
            if (txtFecFin.Text.Trim() != string.Empty) 
            {
                fechaFin = Convert.ToDateTime(txtFecFin.Text);
            }

            string nombreCliente = txtNombres.Text;

            if (nombreCliente.Equals(string.Empty))
            {
                nombreCliente = null;
            }

            string numeroPedido = txtNroPedido.Text.Trim();

            if (numeroPedido.Equals(string.Empty))
            {
                numeroPedido = null;
            }

            if(contexto==null){
            contexto = new VentasDataEntities ();
            }
            var listaPedidos = contexto.BuscarPedido(fechaInicio, fechaFin, nombreCliente, numeroPedido);

            grvListaPedidos.DataSource = listaPedidos;
            grvListaPedidos.DataBind();

        }

        protected void grvListaPedidos_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (hdf_InicioGrilla.Value == "N")
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    e.Row.Attributes["OnClick"] = Page.ClientScript.GetPostBackClientHyperlink(this.grvListaPedidos, "Select$" + e.Row.RowIndex.ToString());

                    BuscarPedido_Result oItem = (BuscarPedido_Result)e.Row.DataItem;

                    StringBuilder strConstructor = new StringBuilder();
                    string sNavigateURL = String.Format("window.opener.document.getElementById('CPHPrincipal_txtNroPedido').value=\"{0}\"; " +
                               "window.opener.document.getElementById('CPHPrincipal_hdfIdPedido').value=\"{1}\";", oItem.nroPedido, oItem.codigoPedido);

                    strConstructor.Append(sNavigateURL);
                    strConstructor.Append("window.close();");


                    ((LinkButton)(e.Row.Cells[6].Controls[0])).Attributes.Add("onclick", strConstructor.ToString());
                }
            }
        }

    }
}